package chapter08_oop._static;

/**
 * ClassName: ChineseTest
 * Package: capter08._static
 * Description:
 *
 * 关键字static
 *
 * @Author SherryAn
 * @Create 2025/7/20 12:05
 */
public class ChineseTest {
    public static void main(String[] args) {
//类变量随着类的创建而加载
        System.out.println(Chinese.nation);
//类方法随着类的创建而加载
        Chinese.show();

//静态变量、实例变量
        Chinese c1=new Chinese();
        c1.name="Sherry";
        c1.age=18;
        c1.nation="China";

        Chinese c2=new Chinese();
        c2.name="An";
        c2.age=20;

        System.out.println(c1.nation);//China
        System.out.println(c2.nation);//China

        c2.nation="CHN";
        System.out.println(c1.nation);//CHN


//类和对象可以调用静态方法
    Chinese.show();
    c1.show();
//类不能调用实例方法，但对象可以调用实例方法。
//    Chinese.eat();//因为类创建时实例方法还没有被生成
        c1.eat("汉堡包");
    }
}
class Chinese{
    String name;
    int age;
    static String nation;
    static String food;

//静态方法show()
    public static void show() {
        System.out.println("Chinese-woman");
//静态方法内可以调用类变量和类方法，不可以调用实例变量和实例方法。
        //调用静态结构
        System.out.println("nation:"+nation);
        method();
        //调用非静态结构
//        System.out.println("name:"+name);
//        eat("饺子");
    }
//静态方法method()
    public static void method() {
        System.out.println("静态测试方法");
    }
//实例方法eat()
    public void eat(String food){
        System.out.println("吃"+food);
    }

//重写toString()
    @Override
    public String toString() {
        return "Chinese{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}